var runtime.trace
177 uses
runtime (current package)
mstats.go#L462: lock(&trace.lock)
mstats.go#L500: unlock(&trace.lock)
trace.go#L30: var trace struct {
trace.go#L174: firstGen := traceNextGen(trace.lastNonZeroGen)
trace.go#L177: trace.seqGC = 1
trace.go#L180: trace.headerWritten = false
trace.go#L181: trace.readerGen.Store(firstGen)
trace.go#L182: trace.flushedGen.Store(0)
trace.go#L232: trace.minPageHeapAddr = uint64(mheap_.pages.inUse.ranges[0].base.addr())
trace.go#L253: trace.enabled = true
trace.go#L256: trace.debugMalloc = debug.malloc
trace.go#L257: trace.enabledWithAllocFree = true
trace.go#L260: trace.gen.Store(firstGen)
trace.go#L275: for trace.exitingSyscall.Load() != 0 {
trace.go#L292: if trace.enabledWithAllocFree {
trace.go#L336: gen := trace.gen.Load()
trace.go#L424: trace.lastNonZeroGen = gen
trace.go#L431: lock(&trace.lock)
trace.go#L432: trace.shutdown.Store(true)
trace.go#L433: trace.gen.Store(0)
trace.go#L434: unlock(&trace.lock)
trace.go#L438: trace.enabled = false
trace.go#L441: trace.gen.Store(traceNextGen(gen))
trace.go#L526: lock(&trace.lock)
trace.go#L532: unlock(&trace.lock)
trace.go#L588: trace.stackTab[gen%2].dump(gen)
trace.go#L589: trace.typeTab[gen%2].dump(gen)
trace.go#L590: trace.stringTab[gen%2].reset(gen)
trace.go#L594: lock(&trace.lock)
trace.go#L595: trace.flushedGen.Store(gen)
trace.go#L596: unlock(&trace.lock)
trace.go#L625: if trace.enabledWithAllocFree {
trace.go#L626: trace.enabledWithAllocFree = false
trace.go#L627: debug.malloc = trace.debugMalloc
trace.go#L649: semacquire(&trace.doneSema[gen%2])
trace.go#L651: raceacquire(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L657: lock(&trace.lock)
trace.go#L658: if !trace.full[gen%2].empty() {
trace.go#L662: if !trace.full[1-(gen%2)].empty() {
trace.go#L665: if trace.reading != nil || trace.reader.Load() != nil {
trace.go#L669: for trace.empty != nil {
trace.go#L670: buf := trace.empty
trace.go#L671: trace.empty = buf.link
trace.go#L675: trace.headerWritten = false
trace.go#L676: trace.shutdown.Store(false)
trace.go#L678: unlock(&trace.lock)
trace.go#L734: trace.markWorkerLabels[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, label))
trace.go#L737: trace.goBlockReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L740: trace.goStopReasons[gen%2][i] = traceArg(trace.stringTab[gen%2].put(gen, str))
trace.go#L758: if !trace.reader.CompareAndSwapNoWB(nil, gp) {
trace.go#L802: lock(&trace.lock)
trace.go#L804: if trace.reader.Load() != nil {
trace.go#L808: unlock(&trace.lock)
trace.go#L813: if buf := trace.reading; buf != nil {
trace.go#L814: buf.link = trace.empty
trace.go#L815: trace.empty = buf
trace.go#L816: trace.reading = nil
trace.go#L819: if !trace.headerWritten {
trace.go#L820: trace.headerWritten = true
trace.go#L821: unlock(&trace.lock)
trace.go#L827: if trace.readerGen.Load() == 0 {
trace.go#L828: trace.readerGen.Store(1)
trace.go#L832: assertLockHeld(&trace.lock)
trace.go#L833: gen = trace.readerGen.Load()
trace.go#L837: if !trace.full[gen%2].empty() {
trace.go#L845: if trace.flushedGen.Load() == gen {
trace.go#L846: if trace.shutdown.Load() {
trace.go#L847: unlock(&trace.lock)
trace.go#L857: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L859: semrelease(&trace.doneSema[gen%2])
trace.go#L868: trace.readerGen.Store(trace.gen.Load())
trace.go#L869: unlock(&trace.lock)
trace.go#L877: racerelease(unsafe.Pointer(&trace.doneSema[gen%2]))
trace.go#L879: semrelease(&trace.doneSema[gen%2])
trace.go#L882: lock(&trace.lock)
trace.go#L894: trace.workAvailable.Store(false)
trace.go#L895: unlock(&trace.lock)
trace.go#L899: tbuf := trace.full[gen%2].pop()
trace.go#L900: trace.reading = tbuf
trace.go#L901: unlock(&trace.lock)
trace.go#L913: if gp == nil || !trace.reader.CompareAndSwapNoWB(gp, nil) {
trace.go#L937: if trace.flushedGen.Load() == trace.readerGen.Load() || trace.workAvailable.Load() || trace.shutdown.Load() {
trace.go#L938: return trace.reader.Load()
traceallocfree.go#L38: w.varint(uint64(trace.minPageHeapAddr))
traceallocfree.go#L107: return traceArg(uint64(s.base())-trace.minPageHeapAddr) / pageSize
traceallocfree.go#L131: return traceArg(uint64(addr)-trace.minPageHeapAddr) / minHeapAlign
traceallocfree.go#L153: return traceArg(uint64(base)-trace.minPageHeapAddr) / fixedStack
tracebuf.go#L70: lock(&trace.lock)
tracebuf.go#L74: unlock(&trace.lock)
tracebuf.go#L85: lock(&trace.lock)
tracebuf.go#L89: if trace.empty != nil {
tracebuf.go#L90: w.traceBuf = trace.empty
tracebuf.go#L91: trace.empty = w.traceBuf.link
tracebuf.go#L92: unlock(&trace.lock)
tracebuf.go#L94: unlock(&trace.lock)
tracebuf.go#L246: assertLockHeld(&trace.lock)
tracebuf.go#L257: trace.full[gen%2].push(buf)
tracebuf.go#L261: if !trace.workAvailable.Load() {
tracebuf.go#L262: trace.workAvailable.Store(true)
tracecpu.go#L18: trace.cpuLogRead[0] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L19: trace.cpuLogRead[1] = newProfBuf(3, profBufWordCount, profBufTagCount)
tracecpu.go#L27: trace.cpuLogWrite[0].Store(trace.cpuLogRead[0])
tracecpu.go#L28: trace.cpuLogWrite[1].Store(trace.cpuLogRead[1])
tracecpu.go#L40: trace.cpuSleep = newWakeableSleep()
tracecpu.go#L54: trace.cpuSleep.sleep(100_000_000)
tracecpu.go#L69: trace.cpuLogDone = done
tracecpu.go#L87: trace.cpuLogWrite[0].Store(nil)
tracecpu.go#L88: trace.cpuLogWrite[1].Store(nil)
tracecpu.go#L89: trace.cpuLogRead[0].close()
tracecpu.go#L90: trace.cpuLogRead[1].close()
tracecpu.go#L91: trace.cpuSleep.wake()
tracecpu.go#L94: <-trace.cpuLogDone
tracecpu.go#L97: trace.cpuLogDone = nil
tracecpu.go#L98: trace.cpuLogRead[0] = nil
tracecpu.go#L99: trace.cpuLogRead[1] = nil
tracecpu.go#L100: trace.cpuSleep.close()
tracecpu.go#L119: data, tags, eof := trace.cpuLogRead[gen%2].read(profBufNonBlocking)
tracecpu.go#L168: w := unsafeTraceWriter(gen, trace.cpuBuf[gen%2])
tracecpu.go#L179: stackID := trace.stackTab[gen%2].put(pcBuf[:nstk])
tracecpu.go#L189: trace.cpuBuf[gen%2] = w.traceBuf
tracecpu.go#L198: if buf := trace.cpuBuf[gen%2]; buf != nil {
tracecpu.go#L200: lock(&trace.lock)
tracecpu.go#L202: unlock(&trace.lock)
tracecpu.go#L203: trace.cpuBuf[gen%2] = nil
tracecpu.go#L233: gen := trace.gen.Load()
tracecpu.go#L262: for !trace.signalLock.CompareAndSwap(0, 1) {
tracecpu.go#L267: if log := trace.cpuLogWrite[gen%2].Load(); log != nil {
tracecpu.go#L274: trace.signalLock.Store(0)
traceevent.go#L186: return traceArg(trace.stackTab[tl.gen%2].put([]uintptr{
traceevent.go#L196: return traceArg(trace.stringTab[tl.gen%2].put(tl.gen, s))
traceevent.go#L203: return traceArg(trace.stringTab[tl.gen%2].emit(tl.gen, s))
traceevent.go#L208: return traceArg(trace.typeTab[tl.gen%2].put(typ))
traceruntime.go#L56: lockInit(&trace.stringTab[0].lock, lockRankTraceStrings)
traceruntime.go#L57: lockInit(&trace.stringTab[0].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L58: lockInit(&trace.stringTab[1].lock, lockRankTraceStrings)
traceruntime.go#L59: lockInit(&trace.stringTab[1].tab.mem.lock, lockRankTraceStrings)
traceruntime.go#L60: lockInit(&trace.stackTab[0].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L61: lockInit(&trace.stackTab[1].tab.mem.lock, lockRankTraceStackTab)
traceruntime.go#L62: lockInit(&trace.typeTab[0].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L63: lockInit(&trace.typeTab[1].tab.mem.lock, lockRankTraceTypeTab)
traceruntime.go#L64: lockInit(&trace.lock, lockRankTrace)
traceruntime.go#L74: lockWithRankMayAcquire(&trace.lock, getLockRank(&trace.lock))
traceruntime.go#L146: return trace.enabled
traceruntime.go#L154: return trace.enabledWithAllocFree
traceruntime.go#L159: return trace.shutdown.Load()
traceruntime.go#L240: gen := trace.gen.Load()
traceruntime.go#L296: trace.exitingSyscall.Add(1)
traceruntime.go#L301: trace.exitingSyscall.Add(-1)
traceruntime.go#L332: tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCActive, traceArg(trace.seqGC))
traceruntime.go#L335: trace.seqGC++
traceruntime.go#L343: tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCBegin, traceArg(trace.seqGC), tl.stack(3))
traceruntime.go#L346: trace.seqGC++
traceruntime.go#L354: tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGCEnd, traceArg(trace.seqGC))
traceruntime.go#L357: trace.seqGC++
traceruntime.go#L456: w = w.write(traceEvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
traceruntime.go#L480: tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGoStop, traceArg(trace.goStopReasons[tl.gen%2][reason]), tl.stack(1))
traceruntime.go#L488: tl.eventWriter(traceGoRunning, traceProcRunning).commit(traceEvGoBlock, traceArg(trace.goBlockReasons[tl.gen%2][reason]), tl.stack(skip))
traceruntime.go#L724: lock(&trace.lock)
traceruntime.go#L733: unlock(&trace.lock)
tracestack.go#L126: id := trace.stackTab[gen%2].put(pcBuf[:nstk])
tracestack.go#L235: frame.funcID = trace.stringTab[gen%2].put(gen, fn)
tracestack.go#L241: frame.fileID = trace.stringTab[gen%2].put(gen, file)
tracestring.go#L88: lock(&trace.lock)
tracestring.go#L90: unlock(&trace.lock)
tracetime.go#L90: lock(&trace.lock)
tracetime.go#L92: unlock(&trace.lock)
 |
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |